package libo;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
    public class DoubleColorBall {
        public static void main(String[] args) {
            // 1. 生成中奖号码
            int[] winRed = generateRedNumbers(); // 中奖红球
            int winBlue = new Random().nextInt(16) + 1; // 中奖蓝球（1-16）

            // 2. 用户输入
            int[] userRed = inputRedNumbers();   // 用户红球
            int userBlue = inputBlueNumber();    // 用户蓝球

            // 3. 比较号码
            int redCount = countMatches(winRed, userRed); // 红球命中数量
            boolean blueMatch = (winBlue == userBlue);    // 蓝球是否命中

            // 4. 显示结果
            showResult(winRed, winBlue, userRed, userBlue, redCount, blueMatch);
        }

        // 生成6个不重复的红球（1-33）
        private static int[] generateRedNumbers() {
            int[] numbers = new int[6];
            Random r = new Random();

            for(int i=0; i<6; i++){
                int num;
                do {
                    num = r.nextInt(33) + 1; // 生成1-33随机数
                } while(contains(numbers, num)); // 检查是否重复
                numbers[i] = num;
            }
            Arrays.sort(numbers); // 排序方便查看
            return numbers;
        }

        // 检查数组是否包含某个数字
        private static boolean contains(int[] arr, int num) {
            for(int n : arr) {
                if(n == num) return true;
            }
            return false;
        }

        // 用户输入红球（带简单校验）
        private static int[] inputRedNumbers() {
            int[] reds = new int[6];
            Scanner sc = new Scanner(System.in);
            for(int i=0; i<6; ){
                System.out.println("请输入红球号码,输入一个任意范围在1-33的数字 ：");
                int num = sc.nextInt();
                if(num <1 || num >33){
                    System.out.println("请输入1-33之间的数字！");
                } else if(contains(reds, num)){
                    System.out.println("数字重复，请重新输入！");
                } else {
                    reds[i] = num;
                    i++; // 只有有效输入才递增
                }
            }
            Arrays.sort(reds);
            return reds;
        }

        // 用户输入蓝球
        private static int inputBlueNumber() {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入蓝球号码,输入一个任意范围在1-33的数字 ：");
            int num;
            do {
                num = sc.nextInt();
                if(num <1 || num >16){
                    System.out.print("请输入1-16之间的数字：");
                }
            } while(num <1 || num >16);
            return num;
        }

        // 计算红球命中数量
        private static int countMatches(int[] win, int[] user) {
            int count = 0;
            for(int userNum : user){
                if(contains(win, userNum)) count++;
            }
            return count;
        }

        // 显示结果和中奖信息
        private static void showResult(int[] winRed, int winBlue,
                                       int[] userRed, int userBlue,
                                       int redCount, boolean blueMatch) {
            System.out.println("中奖号码为：");
            System.out.println(Arrays.toString(winRed) + "  蓝球：" + winBlue);
            System.out.println("您的号码：");
            System.out.println(Arrays.toString(userRed) + " 蓝球：" + userBlue);
            System.out.println("你命中了" + redCount + "个红球号码，" + (blueMatch ? "1个蓝球号码" : "0个蓝球号码"));

            // 判断中奖等级
            if(redCount == 6 && blueMatch){
                System.out.println(" 一等奖！最高1000万！");
            } else if(redCount == 6){
                System.out.println(" 二等奖！最高500万！");
            } else if(redCount ==5 && blueMatch){
                System.out.println(" 三等奖！3000元！");
            } else if(redCount ==5 || (redCount ==4 && blueMatch)){
                System.out.println("四等奖！200元！");
            } else if(redCount ==4 || (redCount ==3 && blueMatch)){
                System.out.println(" 五等奖！10元！");
            } else if(blueMatch){
                System.out.println("六等奖！5元！");
            } else {
                System.out.println("很遗憾，您未中奖");
            }
        }
    }